let tableIns;
let tree;
layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], function () {
    let table = layui.table;
    let form = layui.form;//select、单选、复选等依赖form
    let element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块
    let laydate = layui.laydate;
    tree = layui.tree;
    let height = document.documentElement.clientHeight - 60;
    let $ = layui.jquery;

    form.on('select', function(data){
        if(data.value=="0"){
            $("#agentType0").show();
            $("#agentType1").hide();
        }else if(data.value=="1"){
            $("#agentType0").hide();
            $("#agentType1").show();
        }
    });
    var agentType=$("#agentType").val();
    if(agentType=="0"){
        $("#agentType0").show();
        $("#agentType1").hide();
    }else{
        $("#agentType0").hide();
        $("#agentType1").show();
    }

    tableIns = table.render({
        elem: '#agentTable'
        , url: '/agent/agentlist/page' //ctx +
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , response: {
            statusName: 'flag' //规定数据状态的字段名称，默认：code
            , statusCode: true //规定成功的状态码，默认：0
            , msgName: 'msg' //规定状态信息的字段名称，默认：msg
            , countName: 'records' //规定数据总数的字段名称，默认：count
            , dataName: 'rows' //规定数据列表的字段名称，默认：data
        }
        //响应后数据处理
        , parseData: function (res) { //res 即为原始返回的数据
            var data = res.data;
            return {
                "flag": res.flag, //解析接口状态
                "msg": res.msg, //解析提示文本
                "records": data.records, //解析数据长度
                "rows": data.rows //解析数据列表
            };
        }
        , toolbar: '#agentTableToolbar'
        , title: '代理商列表'
        , cols: [[
            {field: 'agentId', title: '代理商ID', hide: true}
            , {field: 'parentAgentId', title: '二级代理商', hide: true}
            , {field: 'loginId', title: '登录ID', hide: true}
            , {field: 'agentName',title: '代理商'}
            , {field: 'agentPerson',width:100, title: '联系人'}
            , {field: 'agentPhone',width:150, title: '联系电话'}
            , {field: 'loginName', title: '登录账号'}
            , {field: 'agentType',title: '类型' ,templet: '#titleTpl'}
            , {field: 'bankName',title: '开户行名称'}
            , {field: 'bankCode',title: '银行账号'}
            , {field: 'baseAmountPoint',width:100, title: '月结（%）', align:'right', style:'font-weight:bold'}
            , {field: 'stepAmountPoint',width:100, title: '季结（%）', align:'right', style:'font-weight:bold'}
            , {field: 'agentState',width:100, title: '冻结状态'}
            , {field: 'startDate', title: '开始代理时间', hide: true}
            , {field: 'endDate', title: '结束代理时间', hide: true}
            , {fixed: 'right', width:240, title: '操作', toolbar: '#agentTableBar'}
        ]]
        , defaultToolbar: ['', '', '']
        , page: true
        , height: height
        , cellMinWidth: 80
    });

    //头工具栏事件
    table.on('toolbar(display)', function (obj) {
        switch (obj.event) {
            case 'addData':
            	layer.open({
                    type: 2,
                    title: '新增代理商',
                    closeBtn: 1, //显示关闭按钮
                    anim: 2,
                    area: ['770px', '550px'],
                    shadeClose: true, //开启遮罩关闭
                    content: '/agent/agentinsert'
                });
                break;
            case 'query':
                let queryByAgentName = $("#queryByAgentName").val();
                let query = {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , done: function (res, curr, count) {
                        //完成后重置where，解决下一次请求携带旧数据
                        this.where = {};
                    }
                };
                if (queryByAgentName) {
                    //设定异步数据接口的额外参数
                    query.where = {agentName: queryByAgentName};
                }
                tableIns.reload(query);
                $("#queryByAgentName").val(queryByAgentName);
                break;
        }
    });

    //监听行工具事件
    table.on('tool(display)', function (obj) {
        let data = obj.data;
        //删除
        if (obj.event === 'del') {
            layer.confirm('确认删除吗？', function (index) {
                //向服务端发送删除指令
                $.delete("/agent/operation?loginId=" + data.loginId //ctx +
                		+ "&agentId=" + data.agentId
                		+ "&agentState=D", {}, function (data) {
                	$("#queryByAgentNameBtn").click();
                    layer.close(index);
                })
            });
        }
        //冻结
        else if (obj.event === 'cool') {
            layer.confirm('确认冻结吗？', function (index) {
            	//向服务端发送冻结指令
                $.delete("/agent/operation?loginId=" + data.loginId //ctx +
                		+ "&agentId=" + data.agentId
                		+ "&agentState=Y", {}, function (data) {
                	$("#queryByAgentNameBtn").click();
                    layer.close(index);
                })
            });
        }
        //解冻
        else if (obj.event === 'thaw') {
            layer.confirm('确认解冻吗？', function (index) {
                //向服务端发送解冻指令
                $.delete("/agent/operation?loginId=" + data.loginId //ctx +
                		+ "&agentId=" + data.agentId
                		+ "&agentState=N", {}, function (data) {
                	$("#queryByAgentNameBtn").click();
                    layer.close(index);
                })
            });
        }
        //编辑
        else if (obj.event === 'edit') {
        	layer.open({
                type: 2,
                title: '编辑代理商',
                closeBtn: 1, //显示关闭按钮
                anim: 2,
                area: ['770px', '550px'],
                shadeClose: true, //开启遮罩关闭
                content: '/agent/agentinfo?agentId='+data.agentId,
                success: function(layero, index){
                	
                }
            });
        }
        else if(obj.event === 'bindAgent_a'){
            if(data.parentAgentId == 0){
                layer.open({
                    type:2,
                    title:'绑定代理商',
                    closeBtn: 1, //显示关闭按钮
                    anim: 2,
                    area: ['800px', '550px'],
                    shadeClose: true, //开启遮罩关闭
                    content: '/agent/agentbind?agentId='+data.agentId,
                    success: function(layero, index){

                    },
                    /*end:function() {
                       location.reload();
                    }*/
                });
            }else{
                layer.open({
                    type: 1
                    ,id: 'layerDemoAgt' //防止重复弹出
                    ,title:'提示'
                    ,content: '<div style="padding: 20px 0; text-align: center;">当前为二级代理商，不可绑定其他代理商！</div>'
                    ,btn: '确定'
                    ,btnAlign: 'c' //按钮居中
                    ,area: ['460px', '165px']
                    ,shade: [0.6,'#333'] //不显示遮罩
                    ,yes: function(){
                        layer.closeAll();
                    }
                });
            }

        }
    });

    //日期选择器
    laydate.render({
        elem: '#inputStartDate',
        format: "yyyy-MM-dd",
        trigger: 'click'
    });
    
  //日期选择器
    laydate.render({
        elem: '#inputEndDate',
        format: "yyyy-MM-dd",
        trigger: 'click'
    });
});

$.fn.serializeObject = function() {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
}

/**
 * 重置密码
 */
function resetPassword() {
    let agentForm = $("#agentForm").serializeObject();
    $.post("/agent/resetpass", agentForm, function (data) { //ctx +
        if (data.flag) {
            layer.msg("密码重置成功，请尽快登录系统修改密码！", {icon: 1, time: 2000}, function () {
	        	var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
	        	parent.layer.close(index); //再执行关闭
            });
        }
    });
}

/**
 * 提交保存
 */
function agentFormSave() {
    let agentForm = $("#agentForm").serializeObject();

    console.log("agentForm==",agentForm);
    
    var reg = /^1\d{10}$/;
    if(!reg.test(agentForm.agentPhone)){
        layer.msg('请输入正确的手机号',{icon: 5});
        return false;
    }
    reg = /[\S]+/;
    if(!reg.test(agentForm.loginName)){
        layer.confirm('没有输入登录账号，默认使用手机号作为登录账号',{
        	btn: ['确定','取消'] //按钮
        	,yes: function(index, layero){
        		save();
        	}
        	,btn2: function(index, layero){
        	}
        });
        
    } else {
    	save();
    }
}
var saveClickNum =0;//点击保存次数，防止重复点击；
function save(){
    
    if($("[name=agentName]").val()==""){
        layer.msg("请输入用户名称!", {icon: 5});
        return false;
    }
    if($("[name=loginName]").val()==""){
        layer.msg("请输入登陆账号!", {icon: 5});
        return false;
    }
    if($("[name=agentPerson]").val()==""){
        layer.msg("请输入联系人信息!", {icon: 5});
        return false;
    }
    if($("[name=agentPhone]").val()==""){
        layer.msg("请输入联系人电话!", {icon: 5});
        return false;
    }
    if($("[name=baseAmountPoint]").val()==""){
        layer.msg("请输入月结!", {icon: 5});
        return false;
    }
    if($("[name=stepAmountPoint]").val()==""){
        layer.msg("请输入季结!", {icon: 5});
        return false;
    }
    if($("[name=startDate]").val()==""){
        layer.msg("请输入开始时间!", {icon: 5});
        return false;
    }
    if($("[name=endDate]").val()==""){
        layer.msg("请输入结束时间!", {icon: 5});
        return false;
    }

    if($("[name=bankName]").val()==""){
        layer.msg("请输入开户行名称!", {icon: 5});
        return false;
    }
    if($("[name=bankCode]").val()==""){
        layer.msg("请输入开户银行卡号!", {icon: 5});
        return false;
    }
    var agentType=$("#agentType").val();
    if(agentType=="0"){
        if($("[name=personName]").val()==""){
            layer.msg("请输入个人名称!", {icon: 5});
            return false;
        }
        if($("[name=personCode]").val()==""){
            layer.msg("请输入身份证号码!", {icon: 5});
            return false;
        }
    }else{
        if($("[name=corporateName]").val()==""){
            layer.msg("请输入公司名称!", {icon: 5});
            return false;
        }
        if($("[name=corporateCode]").val()==""){
            layer.msg("请输入纳税识别号!", {icon: 5});
            return false;
        }
        if($("[name=corporateAddress]").val()==""){
            layer.msg("请输入公司地址!", {icon: 5});
            return false;
        }
        if($("[name=corporatePhone]").val()==""){
            layer.msg("请输入公司联系方式!", {icon: 5});
            return false;
        }
    }

    if(saveClickNum>0){
        return false;
    }
    saveClickNum++;
	let agentForm = $("#agentForm").serializeObject();
	console.log('agentForm===vvvv==',agentForm);
    $.post("/agent/saveAgent", agentForm, function (data) { //ctx +
    	if(data.flag){
	        layer.msg("保存成功", {icon: 1, time: 2000}, function(){
	        	var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
	        	parent.layer.close(index); //再执行关闭
	        	window.parent.$("#queryByAgentNameBtn").click();
	        });
    	} else {
    		layer.msg(data.msg, {icon: 5});
    	}
    });
}